package virtualpostit.com;

import java.util.ArrayList;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

/**
 * Attività che permette all'utente di creare un nuovo post-it. Il post-it deve essere
 * correttamente creato immettendo tutti i campi richiesti.
 * 
 * @author Gruppo Capo, De Notaris, Pastore e Vento
 * @since Luglio 2011
 */
public class NewPostitActivity extends Activity implements OnClickListener {

	// Attributi di classe
	private EditText etLatitude;
	private EditText etLongitude;
	private EditText etDescription;


	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.new_postit);
		etLatitude = (EditText) findViewById(R.id.etLatitude);
		etLongitude = (EditText) findViewById(R.id.etLongitude);

		// Rendo non cliccabili ne modificabili la latitudine e la longitudine

		etLatitude.setKeyListener(null);
		etLatitude.setOnClickListener(null);
		etLongitude.setKeyListener(null);
		etLongitude.setOnClickListener(null);
		Intent i = getIntent();

		// prelevo i parametri passati dall'attivit� chiamante: latitudine e
		// longitudine
		etLatitude.setText(String.valueOf(i.getDoubleExtra(getPackageName()+ ".latitude", 0)));
		etLongitude.setText(String.valueOf(i.getDoubleExtra(getPackageName()+ ".longitude", 0)));
		etDescription = (EditText) findViewById(R.id.description);
		etDescription.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				if (etDescription.getText().toString().trim().equals("Scrivi un post-it"))
					etDescription.setText("");
			}
		});
		Button createPostit = (Button) findViewById(R.id.crea_postit);
		Button back = (Button) findViewById(R.id.back);
		Log.i("DEB_TAG", "onCreate");
		createPostit.setOnClickListener(this);
		back.setOnClickListener(new OnClickListener() {
			// Cliccando su Indietro termino l'attivit� corrente tornando
			// all'attivit� chiamante
			@Override
			public void onClick(View v) {
				finish();
			}
		});
	}

	/*
	 * @see android.view.View.OnClickListener#onClick(android.view.View)
	 */
	@Override
	public void onClick(View v) {
		EditText etName = (EditText) findViewById(R.id.etName);
		Spinner sCathegory = (Spinner) findViewById(R.id.sCathegory);
		EditText etDescription = (EditText) findViewById(R.id.description);
		String lat = etLatitude.getText().toString();
		String longit = etLongitude.getText().toString();
		String name = etName.getText().toString();
		String cath = sCathegory.getSelectedItem().toString();
		String descr = etDescription.getText().toString();
		MyDialog md = new MyDialog(this);
		if (name.trim().equals("") || descr.trim().equals("")|| descr.trim().equals("Scrivi un post-it")) {
			md.showDialog("Warning", "Compila tutti i campi!",	R.drawable.warning);
		} else if (name.length() > 30) {
			md.showDialog("Warning","Il nome del post-it non può essere più lungo di 30 caratteri",	R.drawable.warning);
		} else {
			WebService newPostIt = new WebService(LoginActivity.SERVER_HOST	+ ":" + LoginActivity.SERVER_PORT);
			ArrayList<NameValuePair> params = new ArrayList<NameValuePair>();
			params.add(new BasicNameValuePair("latitude", lat));
			params.add(new BasicNameValuePair("longitude", longit));
			params.add(new BasicNameValuePair("name", name));
			params.add(new BasicNameValuePair("cathegory", cath));
			params.add(new BasicNameValuePair("description", descr));
			params.add(new BasicNameValuePair("author", getSharedPreferences("LoginPREFS", 0).getString("username", "")));
			Log.i("parametri:",name	+ " "+ cath+ " "+ descr+ " "+ getSharedPreferences("LoginPREFS", 0).getString("username", ""));

			String response = newPostIt.webPost("/newpostit.php", params);
			response = response.replace("\n", "").replace("[", "").replace("]", "");
			Log.i("response",response);
			if (!response.equals("null")) {		       
				getIntent().putExtra(getPackageName()+".postItName",name);
				getIntent().putExtra(getPackageName()+".cathegory",cath);
				getIntent().putExtra(getPackageName()+".insertedLat",lat);
				getIntent().putExtra(getPackageName()+".insertedLongit",longit);
				getIntent().putExtra(getPackageName()+".idWaypoint", response.split(",")[0]);
				setResult(1,getIntent());
				finish();
			} else {
				md.showDialog("Errore", "Errore di connessione, impossibile creare il post-it", R.drawable.error);
			}
		}

	}

}